package cn.caishen.report.domain.system;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;

/**
 * 模块管理
 *
 * @author LB
 **/
@TableName(value = "tb_module")
@Data
@ApiModel(value = "模块管理")
public class Module implements Serializable {

    /**
     * 模块编号
     */
    @TableId(value = "module_id", type = IdType.NONE)
    @ApiModelProperty("模块编号")
    private Integer moduleId;

    /**
     * 模块英文名称
     */
    @TableField(value = "module_code")
    @ApiModelProperty("模块英文名称")
    private String moduleCode;

    /**
     * 模块名称
     */
    @TableField(value = "module_name")
    @ApiModelProperty("模块名称")
    private String moduleName;

    /**
     * 父模块编号
     */
    @TableField(value = "parent_id")
    @ApiModelProperty("父模块编号")
    private Integer parentId;

    /**
     * 父模块名称
     */
    @TableField(exist = false)
    @ApiModelProperty("父模块名称")
    private String parentName;

    /**
     * 模块类型（saas-1，unit-2）
     */
    @TableField(value = "type")
    @ApiModelProperty("模块类型")
    private Integer type;

    /**
     * 层级
     */
    @TableField(value = "level")
    @ApiModelProperty("层级")
    private Integer level;

    /**
     * 访问地址
     */
    @TableField(value = "url")
    @ApiModelProperty("访问地址")
    private String url;

    /**
     * 后台访问地址
     */
    @TableField(value = "request_url")
    @ApiModelProperty("后台访问地址")
    private String requestUrl;

    /**
     * 前端名称
     */
    @TableField(value = "web_name")
    @ApiModelProperty("模块名称")
    private String webName;

    /**
     * 是否是报表（0-正常菜单,1-动态报表,2-看板）
     */
    @TableField(value = "is_report")
    @ApiModelProperty("是否是报表（0-正常菜单,1-动态报表,2-看板）")
    private Integer isReport;

    /**
     * 报表页数（用于看板）
     */
    /*@TableField(value = "report_page")
    @ApiModelProperty("报表页数（用于看板）")
    private Integer reportPage;*/

    /**
     * 删除标志
     */
    @TableField(value = "delete_flag")
    @ApiModelProperty("删除标志")
    private Integer deleteFlag;
}